package com.zzh.partnersys.entity.vo;

import com.zzh.partnersys.entity.CollabDocument;
import lombok.Data;

import java.util.Date;

/**
 * 文档视图�? *
 * @author zzh
 * @since 2024-11-01
 */
@Data
public class CollabDocumentVO {
    /**
     * 文档唯一ID
     */
    private Long id;

    /**
     * 文档标题
     */
    private String docTitle;

    /**
     * 文档类型�?-日报�?-周报�?-月报�?-自定义文�?     */
    private Integer docType;

    /**
     * 所属队伍ID�?表示个人文档�?     */
    private Long teamId;

    /**
     * 创建者ID
     */
    private Long creatorUid;

    /**
     * 创建者名�?     */
    private String creatorName;

    /**
     * 创建者头�?     */
    private String creatorAvatar;

    /**
     * 文档内容
     */
    private String docContent;

    /**
     * 当前版本�?     */
    private Integer version;

    /**
     * 最后编辑者ID
     */
    private Long lastEditorUid;

    /**
     * 最后编辑者名�?     */
    private String lastEditorName;

    /**
     * 最后编辑者头�?     */
    private String lastEditorAvatar;

    /**
     * 编辑状态：0-未锁定，1-已锁�?     */
    private Integer editStatus;

    /**
     * 权限�?-仅查看，2-可编辑，3-可分�?     */
    private Integer permission;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 最后编辑时�?     */
    private Date updateTime;

    /**
     * 类型中文名称
     */
    private String docTypeName;

    /**
     * 从实体类转换为VO
     */
    public static CollabDocumentVO fromEntity(CollabDocument document) {
        CollabDocumentVO vo = new CollabDocumentVO();
        vo.setId(document.getId());
        vo.setDocTitle(document.getDocTitle());
        vo.setDocType(document.getDocType());
        vo.setTeamId(document.getTeamId());
        vo.setCreatorUid(document.getCreatorUid());
        vo.setDocContent(document.getDocContent());
        vo.setVersion(document.getVersion());
        vo.setLastEditorUid(document.getLastEditorUid());
        vo.setEditStatus(document.getEditStatus());
        vo.setPermission(document.getPermission());
        vo.setCreateTime(document.getCreateTime());
        vo.setUpdateTime(document.getUpdateTime());
        
        // 设置文档类型中文名称
        switch (document.getDocType()) {
            case 1:
                vo.setDocTypeName("日报");
                break;
            case 2:
                vo.setDocTypeName("周报");
                break;
            case 3:
                vo.setDocTypeName("月报");
                break;
            case 4:
                vo.setDocTypeName("自定义类型");
                break;
            default:
                vo.setDocTypeName("未知类型");
        }
        
        return vo;
    }
}